package demo;

public class SimpleBusinessDemo {
    /**
     * 简单业务场景：
     * 这个例子创建了三个线程来并行执行不同的任务。
     * 每个任务都是打印一些信息并休眠一段时间，模拟实际工作。
     * 主线程使用join()方法等待所有任务完成后才继续执行。
     * @param args
     */
    public static void main(String[] args) {
        // 创建并启动3个线程执行简单任务
        Thread task1 = new Thread(() -> {
            System.out.println("任务1开始");
            for (int i = 0; i < 5; i++) {
                System.out.println("任务1执行中: " + i);
                try {
                    Thread.sleep(100);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
            System.out.println("任务1完成");
        });

        Thread task2 = new Thread(() -> {
            System.out.println("任务2开始");
            for (int i = 0; i < 5; i++) {
                System.out.println("任务2执行中: " + i);
                try {
                    Thread.sleep(150);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
            System.out.println("任务2完成");
        });

        Thread task3 = new Thread(() -> {
            System.out.println("任务3开始");
            for (int i = 0; i < 5; i++) {
                System.out.println("任务3执行中: " + i);
                try {
                    Thread.sleep(200);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
            System.out.println("任务3完成");
        });

        // 启动所有线程
        task1.start();
        task2.start();
        task3.start();

        // 主线程等待所有任务完成
        try {
            //阻塞等待任务1完成
            task1.join();
            task2.join();
            task3.join();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        System.out.println("所有简单任务已完成");
    }
}
